The present invention relates to a calibration circuit used for calibrating termination resistance values in a variety of semiconductor integration circuits, and more particularly, to a technique to reduce the amount of a current consumed in a calibration circuit.
Various semiconductor devices, such as CPUs, memories, gate arrays and the like, which are realized as IC chips, are incorporated into various electrical products, such as personal computers, servers or work stations. In most cases, each of these semiconductor devices is provided with a receiving circuit for receiving a variety of signals transmitted from the outside of a chip through an input pad, and an output circuit for providing output signals to the outside through an output pad.
Meanwhile, as the operational speed of electrical products has increased, the swing width of a signal interfaced between the semiconductor devices (that is, the voltage difference between the logically low signal state and the logically high signal state) has gradually decreased. This is to minimize the delay time taken in transferring a signal. However, as the swing width of the signal decreases, the influence of external noises increases, and reflectance of the signal due to an impedance mismatching in an interface terminal becomes also serious. The impedance mismatching is generated due to external noises, variations in power voltage, variations in operation temperature, changes in manufacturing process, or the like. When an impedance mismatch is present, it is difficult to transmit data at a high speed, and output data outputted from an output terminal of the semiconductor device may be distorted. Accordingly, when a semiconductor device of a receiving side receives the distorted output signal through an input terminal, problems, such as setup/hold fail or an error in determining an input level may be frequently caused.
In particular, memory devices, which require a high operational speed, employ an impedance matching circuit called ‘on die termination’ around a pad in an integrated circuit chip for solving the aforementioned problems. Typically, in the on die termination scheme, a source termination is performed by an output circuit at a transmitting side, and a parallel termination is performed by a termination circuit connected in parallel with respect to a receiving circuit connected to the input pad at a receiving side.
ZQ calibration indicates a procedure to generate a calibration code varying with conditions of PVT (Process, Voltage, Temperature). Termination resistance values (in the case of memory devices, termination resistance values of a DC pad side) are adjusted using calibration codes generated as a result of ZQ calibration. (Since the calibration is performed using a ZQ node that is a node for calibration, it is called ‘ZQ calibration’.)
Hereinafter, a generation of a calibration code in a calibration circuit for controlling resistance values will be described below.
FIG. 1 is a circuit diagram of a calibration circuit used for controlling a termination resistance value in a memory device in accordance with a conventional art.
Referring to FIG. 1, the conventional calibration circuit is configured to include a calibration unit 110, which corresponds to a portion directly generating a calibration code PCODE<0:N>, and a calibration control unit 120 for controlling an operation of the calibration unit 110.
The calibration unit 110 includes a first pull-up resistance unit 111, a second pull-up resistance unit 112, a pull-down resistance unit 113, comparators 114 and 115, and counters 117 and 118. The calibration unit 110 generates calibration codes PCODE<0:N> and NCODE<0:N>, and whether or not the operation of the calibration unit 110 is enabled and the operation time of the calibration unit 110 are controlled by the calibration control unit 120.
In operations, the comparator 114 compares a voltage of a ZQ node generated by connecting a reference resistor 101 (which is an external resistor of the chip, generally 240Ω) connected to a ZQ pad and the first pull-up resistance unit 11 with a reference voltage VREF (which is generally set to VDDQ/2) to generate an UP/DOWN signal.
The counter 117 receives the UP/DOWN signal to generate a binary code PCODE<0:N>, and turns on/off resistors of the first pull-up resistance unit 111 connected in parallel using the generated binary code PCODE<0:N> to control the resistance value. The controlled resistance value of the first pull-up resistance unit 111 again affects the voltage of the ZQ node, and the aforementioned operation is repeated. That is, the first pull-up resistance unit 111 is calibrated (i.e., pull-up calibration) such that a total resistance value (which is generally 240Ω) of the first pull-up resistance unit 111 is equal to the resistance value of the reference resistor 101.
The binary code PCODE<0:N> generated during the aforementioned pull-up calibration is inputted into the second pull-up resistance unit 112 (which has the same construction as the first pull-up resistance unit 111 and receives the same code, resulting in the same resistance value) to determine a total resistance value of the second pull-up resistance unit 112. Next, the pull-down calibration operation starts. Similarly with the case of the pull-up calibration, the pull-down calibration is performed such that a voltage of a-node is equal to the reference voltage VREF using the comparator 115 and the counter 117, i.e., a total resistance value of the pull-down resistance unit 113 is equal to a total resistance value of the second pull-up resistance unit 112. The pull-up calibration code PCODE<0:N> and the pull-down calibration code NCODE<0:N> generated as a result of the aforementioned calibration are inputted into pull-up and pull-down resistance units (which have the same constructions as those of the pull-up and pull-down resistance units of the calibration unit) of the output terminal (DC pad side) of the semiconductor memory device to determine the termination resistance value.
That is, the data output circuit of the semiconductor memory device terminates the input/output node of data to a pull-up level (when a ‘high’ data is outputted) or pull-down level (when a ‘low’ data is outputted) using the termination resistance value determined by the pull-up calibration code and the pull-down calibration code to output data.
Enabling of the aforementioned calibration operation is performed by the calibration control unit 120. When a calibration command is enabled, the calibration control unit 120 controls the calibration unit 110 to start the calibration operation. The calibration control unit 120 differently controls the calibration operation time depending on the calibration operation modes (i.e., ZQInit, ZQOper, ZQCS). Detailed descriptions for the calibration operation modes (i.e., ZQInit, ZQOper, ZQCS) and the calibration control unit 120 will be given below with reference to the accompanying drawings.
FIG. 2 shows a calibration command (ZQC) truth table and timing parameters according to the calibration operation modes (i.e., ZQInit, ZQOper, ZQCS) (JEDEC standard).
The calibration command (ZQC) is enabled by a combination of /CS (chip select signal), /RAS (row address strobe signal), /CAS (column address strobe signal), /WE (write enable signal), i.e., /CS=‘Low’, /RAS=‘High’, /CAS=‘High’, /WE=‘High’ as shown in the upper side of FIG. 2.
Calibrations are divided into a long calibration and a short calibration, which are determined by whether the logic level of A10 is high or low in a state that the calibration command is enabled.
Calibration operation times are shown in the lower side of FIG. 2. In detail, the long calibration includes two modes, i.e., ZQInit first performed after a power up, and ZQOper, which is generated by an input from a memory controller while the memory device operates. Times of ZQInit and ZQOper are 512 cycles and 256 cycles in terms of clock, respectively. The operation time of the short calibration is 64 cycles.
FIG. 3 is a block diagram showing a construction of the calibration control unit 120 of FIG. 1.
Referring to FIG. 3, the calibration control unit 120 is configured to include a counting unit 310 and a control unit 320.
The counting unit 310 counts a clock to output a counting code CNTR_OUT<0:N>. In detail, the counting unit 310 increases a value of a code CNTR_OUT<0:N> thereof from when the calibration command ZQC is enabled whenever a clock CLK is enabled.
The control unit 320 allows the calibration unit 110 to be enabled according to the calibration operation modes until the value of the counting code CNTR_OUT<0:N> reaches a predetermined value. For example, during the short calibration (ZQCS is enabled), the control unit 320 allows the calibration unit 110 to be enabled until the value of the counting code CNTR_OUT<0:N> reaches 64. During the long calibration, if ZQInit is enabled, the control unit 320 allows the calibration unit 110 to be enabled until the value of the counting code CNTR_OUT<0:N> reaches 512, and if ZQOper is enabled, the control unit 320 allows the calibration unit 110 to be enabled until the value of the counting code CNTR_OUT<0:N> reaches 256.
Enable signal CAL_OPER outputted from the control unit 320 allows the comparators 114 and 115 to be enabled during a set clock cycle such that the calibration operation is possible. If the comparators 114 and 115 fail to perform a comparing operation, it is impossible to generate the calibration codes PCODE<0:N> and NCODE<0:N>. Accordingly, the enable signal CAL_OPER may be also referred to as an enable signal of the calibration unit 110. Update signal UPDATE allows the counters 117 and 118 to latch the calibration codes PCODE<0:N> and NCODE<0:N>, and functions to prevent a glitch due to a delay difference between the pull-up calibration code PCODE<0:N> and the pull-down calibration code NCODE<0:N>.
In summary, the calibration control unit 120 controls the calibration unit 110 such that when the calibration command ZQC is enabled, the calibration unit 110 can generate correct calibration codes PCODE<0:N> and NCODE<0:N>.
FIG. 4 is a timing diagram showing operations before and after the calibration operation of the memory device.
Referring to FIG. 4, it can be confirmed that regardless of whether it is the long calibration ZQCL or the short calibration ZQCS, only a NOP (Non Operation) command or a DESELECT command is inputted from the memory controller during a predetermined time before and after the calibration operation.
While the memory device performs the calibration operation, a data input/output pin DQ Bus maintains a high-impedance (Hi-Z) state, and data is naturally not inputted or outputted. This is because it is possible to correctly input or output data only when a correct terminal resistance value is determined by the calibration operation.
FIG. 5 is a schematic diagram showing various operations of a DDR3 memory device.
It is necessary to focus on a box 501 in FIG. 5. Referring to FIG. 5, a calibration operation may be performed only when a memory device is an idle state.
The calibration control unit 120 of FIG. 1 receives and counts a clock so as to measure a time of while a calibration operation is enabled.
The clock CLK inputted into the calibration control unit 120 is always inputted in a toggling state. Although the counting unit 310 in the calibration control unit 120 does not output the output value CNTR_OUT<0:N> thereof when a calibration operation is not performed, the counting unit 310 continues to consume an unnecessary current owing to a toggling clock.
That is, since the clock inputted into the calibration control unit 120 is always toggling in the conventional art, it is problematic that the calibration control unit 120 unnecessarily consumes a current.